package cn.zhfeat.utils.redis;


import redis.clients.jedis.Jedis;

public class RedisValueUtil {

	//private static Jedis jedis = null;

	/**
	 * 确认一个key是否存在
	 * 
	 * @param key
	 * @return
	 */
	public static Boolean checkKeyExists(String key) {
		Jedis jedis = RedisUtil.getJedisObject();
		Boolean result = jedis.exists(key);
		RedisUtil.recycleJedisOjbect(jedis);
		return result;
	}

	/**
	 * 删除单个key
	 * @param key
	 */
	public static void delKey(String key) {
		Jedis jedis = RedisUtil.getJedisObject();
		jedis.del(key);
		RedisUtil.recycleJedisOjbect(jedis);
	}

	/**
	 * 批量删除key
	 *
	 * @param keys
	 */
	public static void delKeys(String[] keys) {
		Jedis jedis = RedisUtil.getJedisObject();
		jedis.del(keys);
		RedisUtil.recycleJedisOjbect(jedis);
	}

	/**
	 * 将key由oldname重命名为newname，若newname存在则删除newname表示的key
	 * @param oldKey
	 * @param newKey
	 */
	public static void renameKey(String oldKey, String newKey) {
		Jedis jedis = RedisUtil.getJedisObject();
		jedis.rename(oldKey, newKey);
		RedisUtil.recycleJedisOjbect(jedis);
	}

	/**
	 * 返回当前数据库中key的数目
	 * @return
	 */
	public static long dbSize() {
		Jedis jedis = RedisUtil.getJedisObject();
		Long size = jedis.dbSize();
		RedisUtil.recycleJedisOjbect(jedis);
		return size;
	}
	/**
	 * 设定一个key的有效活动时间（s）
	 * @param key
	 * @param seconds
	 */
	public static void setExpire(String key,int seconds){
		Jedis jedis = RedisUtil.getJedisObject();
		jedis.expire(key, seconds);
		RedisUtil.recycleJedisOjbect(jedis);
	}
	/**
	 * 获得一个key的活动时间
	 * @param key
	 * @return
	 */
	public static Long getExpireTime(String key){
		Jedis jedis = RedisUtil.getJedisObject();
		Long time=jedis.ttl(key);
		RedisUtil.recycleJedisOjbect(jedis);
		return time;
	}
	/**
	 * 删除当前选择数据库中的所有key
	 */
	public static void flushDB(){
		Jedis jedis = RedisUtil.getJedisObject();
		jedis.flushDB();
		RedisUtil.recycleJedisOjbect(jedis);
	}
	/**
	 * 删除所有数据库中的所有key
	 */
	public static void flushAll(){
		Jedis jedis = RedisUtil.getJedisObject();
		jedis.flushAll();
		RedisUtil.recycleJedisOjbect(jedis);
	}
	
	public static void main(String[] args) throws InterruptedException{
//    	setData("123456789", "fuck");
//    	System.out.println(getValue("123456789"));
//    	RedisValueUtil.setExpire("123456789", 5);
//    	Thread.sleep(5000);
//    	System.out.println(getValue("123456789"));
    	
		setExpire("ttt",60);
    	System.out.println(getExpireTime("ttt"));
    }

}
